Static Call Graph - [C:\Documents and Settings\dissonance\Рабочий стол\for nxp\Suspend\Suspend.axf]

# Static Call Graph for image C:\Documents and Settings\dissonance\Рабочий стол\for nxp\Suspend\Suspend.axf

#<CALLGRAPH># ARM Linker, RVCT3.1 [Build 942]: Last Updated: Tue Feb 10 16:07:20 2009

### Maximum Stack Usage = 80 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)

### Call chain for Maximum Stack Depth:

__main ⇒ __rt_entry ⇒ __rt_lib_init ⇒ _fp_init ⇒ __rt_fp_status_addr ⇒ __user_perthread_libspace

### Functions with no stack information

- Reset_Handler
- os_sys_manager_ret
- os_switch_tasks_ret
- __user_initial_stackheap
- Undef_Handler
- PAbt_Handler
- DAbt_Handler
- IRQ_Handler
- FIQ_Handler
- Switch_task

### Mutually Recursive functions

- Undef_Handler ⇒ Undef_Handler
- PAbt_Handler ⇒ PAbt_Handler
- DAbt_Handler ⇒ DAbt_Handler
- IRQ_Handler ⇒ IRQ_Handler
- FIQ_Handler ⇒ FIQ_Handler

  ### Function Pointers

  - Reset_Handler
  - Undef_Handler
  - SWI_Handler
  - PAbt_Handler
  - DAbt_Handler
  - IRQ_Handler
  - FIQ_Handler
  - __main
  - os_sys_init1
  - os_irq_ack_lock
  - os_sys_manager
  - tsk_unlock
  - Switch_task
  - __ARM_get_argv
  - os_clock_interrupt
  - main
  - __I_use_semihosting
  - __SWI_0
  - __SWI_1
  - __SWI_2
  - __SWI_3
  - __SWI_4
  - __SWI_5
  - __SWI_6
  - __SWI_7
  - os_idle_demon
  - os_tsk_create0

  ### Global Symbols

  Reset_Handler (ARM, 0 bytes, Stack size unknown bytes, lpc2300.o(RESET))
  [Address Reference Count : 1]

  - lpc2300.o(RESET)

  __main (ARM, 8 bytes, Stack size 0 bytes, __main.o(!!!main))
  [Stack]

  - Max Depth = 80 + Unknown Stack Size
  - Call Chain = __main ⇒ __rt_entry ⇒ __rt_lib_init ⇒ _fp_init ⇒ __rt_fp_status_addr ⇒ __user_perthread_libspace
  [Calls]
  - >> __rt_entry
  - >> __scatterload

  __scatterload (ARM, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter))
  [Called By]

  - >> __main

  __scatterload_rt2 (ARM, 52 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
  [Calls]

  - >> __rt_entry

  __scatterload_null (ARM, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)

  __scatterload_copy (ARM, 40 bytes, Stack size unknown bytes, __scatter_copy.o(!!handler_copy), UNUSED)
  [Calls]

  - >> __scatterload_copy
  [Called By]
  - >> __scatterload_copy

  __scatterload_zeroinit (ARM, 44 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)

  os_set_env (Thumb, 8 bytes, Stack size 0 bytes, rt_hal.o(.emb_text))
  [Called By]

  - >> os_sys_init1

  os_sys_init0 (Thumb, 12 bytes, Stack size 0 bytes, rt_hal.o(.emb_text))
  [Called By]

  - >> main (via Veneer)

  os_sys_run (Thumb, 16 bytes, Stack size 0 bytes, rt_hal.o(.emb_text))
  [Called By]

  - >> os_sys_init1

  os_clock_interrupt (ARM, 128 bytes, Stack size 0 bytes, rt_hal.o(.emb_text))
  [Address Reference Count : 1]

  - rtx_config.o(.text)

  os_sys_manager_ret (Thumb, 0 bytes, Stack size unknown bytes, rt_hal.o(.emb_text))
  [Called By]

  - >> os_sys_manager

  SWI_Handler (ARM, 184 bytes, Stack size 0 bytes, rt_hal.o(.emb_text))
  [Address Reference Count : 1]

  - lpc2300.o(RESET)

  os_switch_tasks_ret (Thumb, 0 bytes, Stack size unknown bytes, rt_hal.o(.emb_text))
  [Called By]

  - >> __SWI_0

  __ARM_argv_veneer (ARM, 16 bytes, Stack size 0 bytes, lib_init.o(.emb_text))
  [Called By]

  - >> __rt_lib_init (via Veneer)

  __user_initial_stackheap (ARM, 0 bytes, Stack size unknown bytes, lpc2300.o(.text))
  [Called By]

  - >> __user_setup_stackheap

  lcd_write_4bit (ARM, 84 bytes, Stack size 4 bytes, lcd_4bit.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = lcd_write_4bit
  [Calls]
  - >> delay
  [Called By]
  - >> lcd_init
  - >> lcd_write_cmd
  - >> lcd_write_data

  lcd_write_cmd (ARM, 48 bytes, Stack size 8 bytes, lcd_4bit.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = lcd_write_cmd ⇒ wait_while_busy ⇒ lcd_read_status
  [Calls]
  - >> lcd_write_4bit
  - >> wait_while_busy
  [Called By]
  - >> lcd_clear
  - >> set_cursor
  - >> lcd_init

  lcd_putchar (ARM, 24 bytes, Stack size 8 bytes, lcd_4bit.o(.text))
  [Stack]

  - Max Depth = 28
  - Call Chain = lcd_putchar ⇒ lcd_write_data ⇒ wait_while_busy ⇒ lcd_read_status
  [Calls]
  - >> lcd_write_data
  [Called By]
  - >> lcd_print
  - >> lcd_init

  lcd_init (ARM, 176 bytes, Stack size 12 bytes, lcd_4bit.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = lcd_init ⇒ lcd_putchar ⇒ lcd_write_data ⇒ wait_while_busy ⇒ lcd_read_status
  [Calls]
  - >> lcd_putchar
  - >> lcd_write_cmd
  - >> lcd_write_4bit
  - >> delay
  [Called By]
  - >> main

  set_cursor (ARM, 48 bytes, Stack size 16 bytes, lcd_4bit.o(.text))
  [Stack]

  - Max Depth = 36
  - Call Chain = set_cursor ⇒ lcd_write_cmd ⇒ wait_while_busy ⇒ lcd_read_status
  [Calls]
  - >> lcd_write_cmd
  [Called By]
  - >> main
  - >> lcd_clear

  lcd_clear (ARM, 32 bytes, Stack size 4 bytes, lcd_4bit.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = lcd_clear ⇒ set_cursor ⇒ lcd_write_cmd ⇒ wait_while_busy ⇒ lcd_read_status
  [Calls]
  - >> set_cursor
  - >> lcd_write_cmd
  [Called By]
  - >> main

  lcd_print (ARM, 40 bytes, Stack size 8 bytes, lcd_4bit.o(.text))
  [Stack]

  - Max Depth = 36
  - Call Chain = lcd_print ⇒ lcd_putchar ⇒ lcd_write_data ⇒ wait_while_busy ⇒ lcd_read_status
  [Calls]
  - >> lcd_putchar
  [Called By]
  - >> main

  os_idle_demon (ARM, 8 bytes, Stack size 0 bytes, rtx_config.o(.text))
  [Called By]

  - >> os_sys_init1 (via Veneer)
  [Address Reference Count : 1]
  - rt_task.o(i.os_sys_init1)

  os_tmr_call (ARM, 4 bytes, Stack size 0 bytes, rtx_config.o(.text))
  [Called By]

  - >> os_tmr_tick (via Veneer)

  os_stk_overflow (ARM, 8 bytes, Stack size 0 bytes, rtx_config.o(.text))
  [Called By]

  - >> __SWI_0 (via Veneer)

  os_tmr_init (Thumb, 34 bytes, Stack size 0 bytes, rtx_config.o(.text))
  [Called By]

  - >> os_sys_init1

  os_tmr_force_irq (Thumb, 8 bytes, Stack size 0 bytes, rtx_config.o(.text), UNUSED)

  os_tmr_inspect_cnt (Thumb, 6 bytes, Stack size 0 bytes, rtx_config.o(.text))
  [Called By]

  - >> os_sys_manager

  os_tmr_inspect_ovf (Thumb, 10 bytes, Stack size 0 bytes, rtx_config.o(.text), UNUSED)

  os_irq_ack_lock (Thumb, 26 bytes, Stack size 0 bytes, rtx_config.o(.text))
  [Address Reference Count : 1]

  - rt_hal.o(.emb_text)

  tsk_lock (Thumb, 8 bytes, Stack size 0 bytes, rtx_config.o(.text))
  [Called By]

  - >> os_mut_wait
  - >> os_mut_release
  - >> os_mut_init
  - >> os_evt_wait
  - >> os_evt_set
  - >> os_dly_wait
  - >> os_tsk_create0
  - >> os_sys_init1

  tsk_unlock (Thumb, 8 bytes, Stack size 0 bytes, rtx_config.o(.text))
  [Called By]

  - >> __SWI_0
  - >> os_mut_wait
  - >> os_mut_release
  - >> os_mut_init
  - >> os_evt_wait
  - >> os_evt_set
  - >> os_dly_wait
  - >> os_tsk_create0
  [Address Reference Count : 1]
  - rt_hal.o(.emb_text)

  __user_perthread_libspace (Thumb, 32 bytes, Stack size 8 bytes, rtx_config.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __user_perthread_libspace
  [Calls]
  - >> os_tsk_self
  [Called By]
  - >> __rt_fp_status_addr (via Veneer)

  _mutex_initialize (Thumb, 52 bytes, Stack size 8 bytes, rtx_config.o(.text), UNUSED)
  [Calls]

  - >> os_mut_init

  _mutex_acquire (Thumb, 26 bytes, Stack size 8 bytes, rtx_config.o(.text), UNUSED)
  [Calls]

  - >> os_mut_wait
  - >> os_tsk_self

  _mutex_release (Thumb, 24 bytes, Stack size 8 bytes, rtx_config.o(.text), UNUSED)
  [Calls]

  - >> os_mut_release
  - >> os_tsk_self

  task2 (ARM, 68 bytes, Stack size 0 bytes, suspend.o(.text), UNUSED)
  [Calls]

  - >> os_evt_wait (via Veneer)
  - >> os_evt_set (via Veneer)
  - >> os_dly_wait (via Veneer)

  task1 (ARM, 148 bytes, Stack size 0 bytes, suspend.o(.text), UNUSED)
  [Calls]

  - >> os_evt_wait (via Veneer)
  - >> os_evt_set (via Veneer)
  - >> os_dly_wait (via Veneer)
  - >> os_tsk_self (via Veneer)
  - >> os_tsk_create0 (via Veneer)

  main (ARM, 72 bytes, Stack size 8 bytes, suspend.o(.text))
  [Stack]

  - Max Depth = 48
  - Call Chain = main ⇒ lcd_clear ⇒ set_cursor ⇒ lcd_write_cmd ⇒ wait_while_busy ⇒ lcd_read_status
  [Calls]
  - >> os_sys_init0 (via Veneer)
  - >> lcd_print
  - >> lcd_clear
  - >> set_cursor
  - >> lcd_init
  [Address Reference Count : 1]
  - kernel.o(.text)

  __user_libspace (ARM, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)

  __user_perproc_libspace (ARM, 0 bytes, Stack size 0 bytes, libspace.o(.text))
  [Called By]

  - >> __rt_locale
  - >> __rt_stackheap_storage
  - >> __user_setup_stackheap

  __use_two_region_memory (ARM, 4 bytes, Stack size 0 bytes, stkheap2.o(.text), UNUSED)

  __rt_stackheap_init (ARM, 36 bytes, Stack size 16 bytes, stkheap2.o(.text))
  [Stack]

  - Max Depth = 24 + Unknown Stack Size
  - Call Chain = __rt_stackheap_init ⇒ __rt_stackheap_storage
  [Calls]
  - >> __rt_stackheap_storage
  - >> __user_setup_stackheap
  [Called By]
  - >> __rt_entry

  __rt_heap_extend (ARM, 24 bytes, Stack size 8 bytes, stkheap2.o(.text), UNUSED)
  [Calls]

  - >> __user_heap_extend (Weak Reference)

  __rt_entry (ARM, 76 bytes, Stack size 16 bytes, kernel.o(.text))
  [Stack]

  - Max Depth = 80 + Unknown Stack Size
  - Call Chain = __rt_entry ⇒ __rt_lib_init ⇒ _fp_init ⇒ __rt_fp_status_addr ⇒ __user_perthread_libspace
  [Calls]
  - >> _platform_post_lib_init
  - >> _platform_post_stackheap_init
  - >> __rt_lib_init (via Veneer)
  - >> exit (via BX)
  - >> __rt_stackheap_init
  [Called By]
  - >> __main
  - >> __scatterload_rt2

  __rt_exit (ARM, 20 bytes, Stack size 8 bytes, kernel.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = __rt_exit ⇒ __rt_lib_shutdown
  [Calls]
  - >> __rt_lib_shutdown (via Veneer)
  [Called By]
  - >> exit (via Veneer)

  __rt_abort (ARM, 8 bytes, Stack size 0 bytes, kernel.o(.text), UNUSED)
  [Calls]

  - >> _sys_exit

  __user_setup_stackheap (ARM, 96 bytes, Stack size 8 bytes, sys_stackheap_outer.o(.text))
  [Stack]

  - Max Depth = 8 + Unknown Stack Size
  - Call Chain = __user_setup_stackheap
  [Calls]
  - >> __user_initial_stackheap
  - >> __user_perproc_libspace
  [Called By]
  - >> __rt_stackheap_init

  __rt_stackheap_storage (ARM, 20 bytes, Stack size 8 bytes, rt_stackheap_storage_twolibspace.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __rt_stackheap_storage
  [Calls]
  - >> __user_perproc_libspace
  [Called By]
  - >> __rt_stackheap_init

  _sys_exit (ARM, 20 bytes, Stack size 0 bytes, sys_exit.o(.text), UNUSED)
  [Called By]

  - >> __rt_abort

  exit (Thumb, 12 bytes, Stack size 0 bytes, exit.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = exit ⇒ __rt_exit ⇒ __rt_lib_shutdown
  [Calls]
  - >> _call_atexit_fns (Weak Reference)
  - >> __rt_exit (via Veneer)
  [Called By]
  - >> __rt_entry

  __rt_lib_init (Thumb, 184 bytes, Stack size 40 bytes, lib_init.o(.text))
  [Stack]

  - Max Depth = 64
  - Call Chain = __rt_lib_init ⇒ _fp_init ⇒ __rt_fp_status_addr ⇒ __user_perthread_libspace
  [Calls]
  - >> _fp_init (via Veneer)
  - >> __rt_locale (via Veneer)
  - >> _signal_init (Weak Reference)
  - >> _rand_init (Weak Reference)
  - >> _initio (Weak Reference)
  - >> _init_user_alloc (Weak Reference)
  - >> _init_alloc (Weak Reference)
  - >> _getenv_init (Weak Reference)
  - >> _get_lc_time (Weak Reference)
  - >> _get_lc_numeric (Weak Reference)
  - >> _get_lc_monetary (Weak Reference)
  - >> _get_lc_ctype (Weak Reference)
  - >> _get_lc_collate (Weak Reference)
  - >> _fp_trap_init (Weak Reference)
  - >> _clock_init (Weak Reference)
  - >> _atexit_init (Weak Reference)
  - >> __cpp_initialize__aeabi_ (Weak Reference)
  - >> __alloca_initialize (Weak Reference)
  - >> __Heap_DescSize (Weak Reference)
  - >> __ARM_exceptions_init (Weak Reference)
  - >> __ARM_argv_veneer (via Veneer)
  [Called By]
  - >> __rt_entry (via Veneer)

  __rt_lib_shutdown (Thumb, 22 bytes, Stack size 8 bytes, lib_init.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __rt_lib_shutdown
  [Calls]
  - >> _terminateio (Weak Reference)
  - >> _terminate_user_alloc (Weak Reference)
  - >> __cxa_finalize (Weak Reference)
  [Called By]
  - >> __rt_exit (via Veneer)

  _platform_post_stackheap_init (ARM, 12 bytes, Stack size 0 bytes, boardinit2.o(.text))
  [Called By]

  - >> __rt_entry

  _platform_post_lib_init (ARM, 16 bytes, Stack size 8 bytes, boardinit3.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = _platform_post_lib_init
  [Called By]
  - >> __rt_entry

  __I_use_semihosting (ARM, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text))
  [Address Reference Count : 1]

  - sys_exit.o(.text)

  __use_no_semihosting_swi (ARM, 4 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)

  __rt_locale (ARM, 20 bytes, Stack size 8 bytes, rt_locale_twolibspace.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = __rt_locale
  [Calls]
  - >> __user_perproc_libspace
  [Called By]
  - >> __rt_lib_init (via Veneer)

  __ARM_get_argv (Thumb, 6 bytes, Stack size 4 bytes, no_argv.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = __ARM_get_argv
  [Address Reference Count : 1]
  - lib_init.o(.emb_text)

  __rt_fp_status_addr (ARM, 20 bytes, Stack size 8 bytes, rt_fp_status_addr_twolibspace.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = __rt_fp_status_addr ⇒ __user_perthread_libspace
  [Calls]
  - >> __user_perthread_libspace (via Veneer)
  [Called By]
  - >> _fp_init

  __SWI_0 (Thumb, 68 bytes, Stack size 0 bytes, rt_hal.o(i.__SWI_0))
  [Calls]

  - >> rt_post_taskswitch (Weak Reference)
  - >> os_switch_tasks_ret
  - >> tsk_unlock
  - >> os_stk_overflow (via Veneer)
  [Address Reference Count : 1]
  - SWI_Table.o(SWI_TABLE)

  __SWI_1 (Thumb, 14 bytes, Stack size 0 bytes, rt_membox.o(i.__SWI_1))
  [Address Reference Count : 1]

  - SWI_Table.o(SWI_TABLE)

  __SWI_2 (Thumb, 24 bytes, Stack size 0 bytes, rt_membox.o(i.__SWI_2))
  [Address Reference Count : 1]

  - SWI_Table.o(SWI_TABLE)

  __SWI_3 (Thumb, 8 bytes, Stack size 0 bytes, rt_hal.o(i.__SWI_3))
  [Address Reference Count : 1]

  - SWI_Table.o(SWI_TABLE)

  __SWI_4 (Thumb, 8 bytes, Stack size 0 bytes, rt_hal.o(i.__SWI_4))
  [Address Reference Count : 1]

  - SWI_Table.o(SWI_TABLE)

  __SWI_5 (Thumb, 2 bytes, Stack size 0 bytes, rt_hal.o(i.__SWI_5))
  [Address Reference Count : 1]

  - SWI_Table.o(SWI_TABLE)

  __SWI_6 (Thumb, 2 bytes, Stack size 0 bytes, rt_hal.o(i.__SWI_6))
  [Address Reference Count : 1]

  - SWI_Table.o(SWI_TABLE)

  __SWI_7 (Thumb, 2 bytes, Stack size 0 bytes, rt_hal.o(i.__SWI_7))
  [Address Reference Count : 1]

  - SWI_Table.o(SWI_TABLE)

  _init_box (Thumb, 74 bytes, Stack size 4 bytes, rt_membox.o(i._init_box))
  [Stack]

  - Max Depth = 4
  - Call Chain = _init_box
  [Called By]
  - >> os_sys_init1

  os_block (Thumb, 58 bytes, Stack size 16 bytes, rt_task.o(i.os_block), UNUSED)
  [Calls]

  - >> os_put_dly
  - >> os_get_first
  [Called By]
  - >> os_mut_wait
  - >> os_evt_wait
  - >> os_dly_wait

  os_chk_robin (Thumb, 66 bytes, Stack size 8 bytes, rt_robin.o(i.os_chk_robin))
  [Stack]

  - Max Depth = 16
  - Call Chain = os_chk_robin ⇒ os_put_prio
  [Calls]
  - >> os_put_prio
  - >> os_get_first
  [Called By]
  - >> os_sys_manager

  os_dec_dly (Thumb, 116 bytes, Stack size 16 bytes, rt_list.o(i.os_dec_dly))
  [Stack]

  - Max Depth = 24
  - Call Chain = os_dec_dly ⇒ os_put_prio
  [Calls]
  - >> os_put_prio
  [Called By]
  - >> os_sys_manager

  os_dispatch (Thumb, 60 bytes, Stack size 16 bytes, rt_task.o(i.os_dispatch))
  [Stack]

  - Max Depth = 24
  - Call Chain = os_dispatch ⇒ os_put_prio
  [Calls]
  - >> os_put_rdy_first
  - >> os_put_prio
  - >> os_get_first
  [Called By]
  - >> os_mut_release
  - >> os_evt_set
  - >> os_tsk_create0

  os_dly_wait (Thumb, 26 bytes, Stack size 8 bytes, rt_time.o(i.os_dly_wait), UNUSED)
  [Calls]

  - >> os_block
  - >> tsk_unlock
  - >> tsk_lock
  [Called By]
  - >> task1 (via Veneer)
  - >> task2 (via Veneer)

  os_evt_psh (Thumb, 80 bytes, Stack size 8 bytes, rt_event.o(i.os_evt_psh))
  [Stack]

  - Max Depth = 16
  - Call Chain = os_evt_psh ⇒ os_put_prio
  [Calls]
  - >> os_rmv_dly
  - >> os_put_prio
  [Called By]
  - >> os_sys_manager

  os_evt_set (Thumb, 104 bytes, Stack size 16 bytes, rt_event.o(i.os_evt_set), UNUSED)
  [Calls]

  - >> os_dispatch
  - >> tsk_unlock
  - >> tsk_lock
  - >> os_rmv_dly
  [Called By]
  - >> task1 (via Veneer)
  - >> task2 (via Veneer)

  os_evt_wait (Thumb, 88 bytes, Stack size 16 bytes, rt_event.o(i.os_evt_wait), UNUSED)
  [Calls]

  - >> os_block
  - >> tsk_unlock
  - >> tsk_lock
  [Called By]
  - >> task1 (via Veneer)
  - >> task2 (via Veneer)

  os_get_first (Thumb, 42 bytes, Stack size 0 bytes, rt_list.o(i.os_get_first))
  [Called By]

  - >> os_sys_manager
  - >> os_mut_release
  - >> os_dispatch
  - >> os_block
  - >> os_sem_psh
  - >> os_mbx_psh
  - >> os_chk_robin

  os_init_stack (Thumb, 84 bytes, Stack size 8 bytes, rt_hal.o(i.os_init_stack))
  [Stack]

  - Max Depth = 8
  - Call Chain = os_init_stack
  [Called By]
  - >> os_init_context

  os_mbx_psh (Thumb, 124 bytes, Stack size 16 bytes, rt_mailbox.o(i.os_mbx_psh))
  [Stack]

  - Max Depth = 24
  - Call Chain = os_mbx_psh ⇒ os_put_prio
  [Calls]
  - >> os_rmv_dly
  - >> os_put_prio
  - >> os_get_first
  [Called By]
  - >> os_sys_manager

  os_mut_init (Thumb, 46 bytes, Stack size 16 bytes, rt_mutex.o(i.os_mut_init), UNUSED)
  [Calls]

  - >> tsk_unlock
  - >> tsk_lock
  [Called By]
  - >> _mutex_initialize

  os_mut_release (Thumb, 164 bytes, Stack size 24 bytes, rt_mutex.o(i.os_mut_release), UNUSED)
  [Calls]

  - >> os_dispatch
  - >> tsk_unlock
  - >> tsk_lock
  - >> os_rmv_dly
  - >> os_put_prio
  - >> os_get_first
  [Called By]
  - >> _mutex_release

  os_mut_wait (Thumb, 128 bytes, Stack size 16 bytes, rt_mutex.o(i.os_mut_wait), UNUSED)
  [Calls]

  - >> os_block
  - >> tsk_unlock
  - >> tsk_lock
  - >> os_resort_prio
  - >> os_put_prio
  [Called By]
  - >> _mutex_acquire

  os_psq_deq (Thumb, 30 bytes, Stack size 4 bytes, rt_list.o(i.os_psq_deq))
  [Stack]

  - Max Depth = 4
  - Call Chain = os_psq_deq
  [Called By]
  - >> os_sys_manager

  os_put_dly (Thumb, 78 bytes, Stack size 4 bytes, rt_list.o(i.os_put_dly), UNUSED)
  [Called By]

  - >> os_block

  os_put_prio (Thumb, 62 bytes, Stack size 8 bytes, rt_list.o(i.os_put_prio))
  [Stack]

  - Max Depth = 8
  - Call Chain = os_put_prio
  [Called By]
  - >> os_mut_wait
  - >> os_mut_release
  - >> os_evt_psh
  - >> os_dispatch
  - >> os_sem_psh
  - >> os_mbx_psh
  - >> os_chk_robin
  - >> os_resort_prio
  - >> os_dec_dly

  os_put_rdy_first (Thumb, 14 bytes, Stack size 0 bytes, rt_list.o(i.os_put_rdy_first))
  [Called By]

  - >> os_sys_manager
  - >> os_dispatch

  os_resort_prio (Thumb, 48 bytes, Stack size 8 bytes, rt_list.o(i.os_resort_prio), UNUSED)
  [Calls]

  - >> os_rmv_list
  - >> os_put_prio
  [Called By]
  - >> os_mut_wait

  os_rmv_dly (Thumb, 44 bytes, Stack size 4 bytes, rt_list.o(i.os_rmv_dly))
  [Stack]

  - Max Depth = 4
  - Call Chain = os_rmv_dly
  [Called By]
  - >> os_mut_release
  - >> os_evt_set
  - >> os_evt_psh
  - >> os_sem_psh
  - >> os_mbx_psh

  os_rmv_list (Thumb, 46 bytes, Stack size 0 bytes, rt_list.o(i.os_rmv_list), UNUSED)
  [Called By]

  - >> os_resort_prio

  os_sem_psh (Thumb, 50 bytes, Stack size 8 bytes, rt_semaphore.o(i.os_sem_psh))
  [Stack]

  - Max Depth = 16
  - Call Chain = os_sem_psh ⇒ os_put_prio
  [Calls]
  - >> os_rmv_dly
  - >> os_put_prio
  - >> os_get_first
  [Called By]
  - >> os_sys_manager

  os_sys_init1 (Thumb, 162 bytes, Stack size 0 bytes, rt_task.o(i.os_sys_init1))
  [Stack]

  - Max Depth = 24
  - Call Chain = os_sys_init1 ⇒ os_init_context ⇒ os_init_stack
  [Calls]
  - >> os_sys_run
  - >> os_set_env
  - >> rt_init (Weak Reference)
  - >> os_init_context
  - >> tsk_lock
  - >> os_tmr_init
  - >> os_idle_demon (via Veneer)
  - >> _init_box
  [Address Reference Count : 1]
  - rt_hal.o(.emb_text)

  os_sys_manager (Thumb, 152 bytes, Stack size 8 bytes, rt_system.o(i.os_sys_manager))
  [Stack]

  - Max Depth = 32 + Unknown Stack Size
  - Call Chain = os_sys_manager ⇒ os_mbx_psh ⇒ os_put_prio
  [Calls]
  - >> os_tmr_reload (Weak Reference)
  - >> os_sys_manager_ret
  - >> os_evt_psh
  - >> os_tmr_inspect_cnt
  - >> os_tmr_tick
  - >> os_sem_psh
  - >> os_mbx_psh
  - >> os_chk_robin
  - >> os_put_rdy_first
  - >> os_psq_deq
  - >> os_get_first
  - >> os_dec_dly
  [Address Reference Count : 1]
  - rt_hal.o(.emb_text)

  os_tmr_tick (Thumb, 58 bytes, Stack size 16 bytes, rt_timer.o(i.os_tmr_tick))
  [Stack]

  - Max Depth = 16
  - Call Chain = os_tmr_tick
  [Calls]
  - >> os_tmr_call (via Veneer)
  [Called By]
  - >> os_sys_manager

  os_tsk_create0 (Thumb, 128 bytes, Stack size 40 bytes, rt_task.o(i.os_tsk_create0))
  [Stack]

  - Max Depth = 64
  - Call Chain = os_tsk_create0 ⇒ os_dispatch ⇒ os_put_prio
  [Calls]
  - >> rt_notify (Weak Reference)
  - >> os_dispatch
  - >> os_init_context
  - >> tsk_unlock
  - >> tsk_lock
  [Called By]
  - >> task1 (via Veneer)
  [Address Reference Count : 1]
  - rt_task.o(i.os_sys_init1)

  os_tsk_self (Thumb, 12 bytes, Stack size 0 bytes, rt_task.o(i.os_tsk_self))
  [Called By]

  - >> task1 (via Veneer)
  - >> _mutex_release
  - >> _mutex_acquire
  - >> __user_perthread_libspace

  _fp_init (ARM, 24 bytes, Stack size 8 bytes, fpinit.o(x$fpl$fpinit))
  [Stack]

  - Max Depth = 24
  - Call Chain = _fp_init ⇒ __rt_fp_status_addr ⇒ __user_perthread_libspace
  [Calls]
  - >> __rt_fp_status_addr
  [Called By]
  - >> __rt_lib_init (via Veneer)

  __fplib_config_pureend_doubles (ARM, 0 bytes, Stack size unknown bytes, fpinit.o(x$fpl$fpinit), UNUSED)

  ### Local Symbols

  Undef_Handler (ARM, 4 bytes, Stack size unknown bytes, lpc2300.o(RESET))
  [Calls]

  - >> Undef_Handler
  [Called By]
  - >> Undef_Handler
  [Address Reference Count : 1]
  - lpc2300.o(RESET)

  PAbt_Handler (ARM, 4 bytes, Stack size unknown bytes, lpc2300.o(RESET))
  [Calls]

  - >> PAbt_Handler
  [Called By]
  - >> PAbt_Handler
  [Address Reference Count : 1]
  - lpc2300.o(RESET)

  DAbt_Handler (ARM, 4 bytes, Stack size unknown bytes, lpc2300.o(RESET))
  [Calls]

  - >> DAbt_Handler
  [Called By]
  - >> DAbt_Handler
  [Address Reference Count : 1]
  - lpc2300.o(RESET)

  IRQ_Handler (ARM, 4 bytes, Stack size unknown bytes, lpc2300.o(RESET))
  [Calls]

  - >> IRQ_Handler
  [Called By]
  - >> IRQ_Handler
  [Address Reference Count : 1]
  - lpc2300.o(RESET)

  FIQ_Handler (ARM, 4 bytes, Stack size unknown bytes, lpc2300.o(RESET))
  [Calls]

  - >> FIQ_Handler
  [Called By]
  - >> FIQ_Handler
  [Address Reference Count : 1]
  - lpc2300.o(RESET)

  delay (ARM, 24 bytes, Stack size 0 bytes, lcd_4bit.o(.text))
  [Called By]

  - >> lcd_init
  - >> lcd_write_4bit
  - >> lcd_read_status

  lcd_read_status (ARM, 188 bytes, Stack size 4 bytes, lcd_4bit.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = lcd_read_status
  [Calls]
  - >> delay
  [Called By]
  - >> wait_while_busy

  wait_while_busy (ARM, 36 bytes, Stack size 8 bytes, lcd_4bit.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = wait_while_busy ⇒ lcd_read_status
  [Calls]
  - >> lcd_read_status
  [Called By]
  - >> lcd_write_cmd
  - >> lcd_write_data

  lcd_write_data (ARM, 48 bytes, Stack size 8 bytes, lcd_4bit.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = lcd_write_data ⇒ wait_while_busy ⇒ lcd_read_status
  [Calls]
  - >> lcd_write_4bit
  - >> wait_while_busy
  [Called By]
  - >> lcd_putchar

  os_init_context (Thumb, 66 bytes, Stack size 16 bytes, rt_task.o(i.os_init_context))
  [Stack]

  - Max Depth = 24
  - Call Chain = os_init_context ⇒ os_init_stack
  [Calls]
  - >> os_init_stack
  [Called By]
  - >> os_tsk_create0
  - >> os_sys_init1

  Switch_task (ARM, 0 bytes, Stack size unknown bytes, rt_hal.o(.emb_text))
  [Address Reference Count : 1]

  - rt_hal.o(.emb_text)

  ### Undefined Global Symbols

  __ARM_exceptions_init (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_init (Weak Reference)

  __Heap_DescSize (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_init (Weak Reference)

  __alloca_initialize (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_init (Weak Reference)

  __cpp_initialize__aeabi_ (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_init (Weak Reference)

  __cxa_finalize (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_shutdown (Weak Reference)

  __user_heap_extend (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED, UNUSED)
  [Called By]

  - >> __rt_heap_extend (Weak Reference)

  _atexit_init (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_init (Weak Reference)

  _call_atexit_fns (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> exit (Weak Reference)

  _clock_init (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_init (Weak Reference)

  _fp_trap_init (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_init (Weak Reference)

  _get_lc_collate (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_init (Weak Reference)

  _get_lc_ctype (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_init (Weak Reference)

  _get_lc_monetary (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_init (Weak Reference)

  _get_lc_numeric (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_init (Weak Reference)

  _get_lc_time (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_init (Weak Reference)

  _getenv_init (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_init (Weak Reference)

  _init_alloc (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_init (Weak Reference)

  _init_user_alloc (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_init (Weak Reference)

  _initio (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_init (Weak Reference)

  _rand_init (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_init (Weak Reference)

  _signal_init (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_init (Weak Reference)

  _terminate_user_alloc (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_shutdown (Weak Reference)

  _terminateio (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __rt_lib_shutdown (Weak Reference)

  os_tmr_reload (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> os_sys_manager (Weak Reference)

  rt_init (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> os_sys_init1 (Weak Reference)

  rt_notify (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> os_tsk_create0 (Weak Reference)

  rt_post_taskswitch (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
  [Called By]

  - >> __SWI_0 (Weak Reference)